home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / INFO / XFDISK.ZIP / CP3204.1PR < prev    next >
Text File  |  1991-08-28  |  11KB  |  378 lines

  1. F 0100 07FF 0                                                             
  2. A 100                                                                    
  3. MOV AX,CS   ; get CS register                                            
  4. MOV DS,AX   ; initialize DS register                                     
  5. MOV ES,AX   ; initialize DS register                                     
  6. ;                                                                        
  7. MOV AH,30   ; get function code to check DOS version                     
  8. INT 21      ; call DOS routine to get version number                     
  9. CMP AL,5    ; check for DOS version 5.00 or higher                       
  10. JGE 112     ; JGE CONTINUE to partition fixed disk                       
  11. ;             otherwise, incorrect DOS version                           
  12. MOV AL,80   ; set ERRORLEVEL value to indicate incorrect DOS version     
  13. JMP 130     ; JMP ERROR                                                  
  14. ;                                                                        
  15. ;[CONTINUE]                                                              
  16. MOV SI,0003 ; initalize loop counter                                     
  17. ;                                                                        
  18. ;[LOOP]                                                                  
  19. MOV AH,03   ; get function code to write to disk                         
  20. MOV AL,03   ; get number of sectors to write                
  21. MOV BX,0200 ; ES:BX points to beginning of data                          
  22. MOV CX,0001 ; set CH to low order byte for cylinder number               
  23. ;             set CL lower 6-bits to sector number                       
  24. ;             set CL upper 2-bits to high order bits for cylinder number 
  25. MOV DH,00   ; get number for head (side)                                 
  26. MOV DL,80   ; get drive number for 1st fixed disk          
  27. INT 13      ; call BIOS routine which provides disk services             
  28. JNC 0134    ; JNC WRITEOK if no error                                    
  29. ;             otherwise, . . .                                           
  30. MOV AH,0    ; get function code to reset disk system                     
  31. INT 13      ; call BIOS routine which provides disk services             
  32. DEC SI      ; decrement loop counter                                     
  33. JNZ 0115    ; JNZ LOOP to try to write to disk again                     
  34. ;             otherwise, . . .                                           
  35. MOV AL,02   ; set ERRORLEVEL value to indicate error                     
  36. ;           ; and . . .                                                  
  37. ;[ERROR]      terminate program with ERRORLEVEL value                    
  38. MOV AH,4C   ; get function code to teminate program                      
  39. INT 21      ; and exit program                                           
  40. ;                                                                        
  41. ;[WRITEOK]                                                               
  42. MOV AL,00   ; set ERRORLEVEL value to indicate success                   
  43. MOV AH,4C   ; get function code to teminate program                      
  44. INT 21      ; and exit program                                           
  45. NOP                                                                      
  46.                                                                        
  47. A 200                  
  48. CLI                    
  49. XOR AX,AX              
  50. MOV DS,AX              
  51. MOV ES,AX              
  52. MOV SS,AX              
  53. MOV SP,7C00            
  54. MOV SI,SP              
  55. STI                    
  56. CLD                    
  57. MOV DI,600             
  58. MOV CX,100             
  59. REPNZ                  
  60. MOVSW                  
  61. JMP 0:61D              
  62. MOV SI,7BE             
  63. MOV BL,4               
  64. CMP BYTE PTR [SI],80   
  65. JZ 235                 
  66. CMP BYTE PTR [SI],0    
  67. JNZ 248                
  68. ADD SI,+10             
  69. DEC BL                 
  70. JNZ 222                
  71. INT 18                 
  72. MOV DX,[SI]            
  73. MOV CX,[SI+2]          
  74. MOV BP,SI              
  75. ADD SI,+10             
  76. DEC BL                 
  77. JZ 25D                 
  78. CMP BYTE PTR [SI],0    
  79. JZ 23C                 
  80. MOV SI,68B             
  81. LODSB                  
  82. CMP AL,0               
  83. JZ 25B                 
  84. PUSH SI                
  85. MOV BX,7               
  86. MOV AH,E               
  87. INT 10                 
  88. POP SI                 
  89. JMP 24B                
  90. JMP 25B                
  91. MOV DI,3               
  92. PUSH DI                
  93. MOV BX,7C00            
  94. MOV AX,201             
  95. INT 13                 
  96. POP DI                 
  97. JNC 278                
  98. XOR AX,AX              
  99. INT 13                 
  100. DEC DI                 
  101. JNZ 260                
  102. MOV SI,6A5             
  103. JMP 24B                
  104. MOV SI,6C6             
  105. MOV DI,7DFE            
  106. CMP WORD PTR [DI],AA55 
  107. JNZ 24B                
  108. MOV SI,BP              
  109. JMP 0:7C00             
  110.                      
  111. E 28B D A "Invalid Partition Table" 0        
  112. E 2A5 D A "Error Loading Operating System" 0 
  113. E 2C6 D A "Missing Operating System" 0       
  114. F 2E1 3FD 0 
  115. E 3FE 55 AA 
  116. A 400   
  117. JMP 43E 
  118. NOP     
  119.       
  120. E 403 "DWPerson"       
  121. E 40B 00 02            
  122. E 40D 02               
  123. E 40E 01 00            
  124. E 410 02               
  125. E 411 00 02            
  126. E 413 00 00            
  127. E 415 F8               
  128. E 416 CB 00            
  129. E 418 33 00            
  130. E 41A 0F 00            
  131. E 41C 01 00 00 00      
  132. E 420 67 96 01 00      
  133. E 424 80 
  134. E 425 00               
  135. E 426 29               
  136. E 427 31 08 91 19      
  137. E 42B "FDISK"          
  138. E 430 "1" 
  139. E 431 " VOL"            
  140. E 435 "?"               
  141. E 436 "FAT16   "        
  142. A 43E                  
  143. CLI                    
  144. XOR AX,AX              
  145. MOV ES,AX              
  146. MOV SS,AX              
  147. MOV SP,7C00            
  148. MOV BX,78              
  149. SS: LDS SI,[BX]        
  150. PUSH DS                
  151. PUSH SI                
  152. PUSH SS                
  153. PUSH BX                
  154. MOV DI,7C3E            
  155. MOV CX,B               
  156. CLD                    
  157. REPZ                   
  158. MOVSB                  
  159. PUSH ES                
  160. POP DS                 
  161. MOV BYTE PTR [DI-2],F  
  162. MOV CX,[7C18]          
  163. MOV [DI-7],CL          
  164. MOV [BX+2],AX          
  165. MOV WORD PTR [BX],7C3E 
  166. STI                    
  167. INT 13                 
  168. JC 4ED                 
  169. XOR AX,AX              
  170. CMP [7C13],AX          
  171. JZ 484                 
  172. MOV CX,[7C13]          
  173. MOV [7C20],CX          
  174. MOV AL,[7C10]          
  175. MUL WORD PTR [7C16]    
  176. ADD AX,[7C1C]          
  177. ADC DX,[7C1E]          
  178. ADD AX,[7C0E]          
  179. ADC DX,0               
  180. MOV [7C50],AX          
  181. MOV [7C52],DX          
  182. MOV [7C49],AX          
  183. MOV [7C4B],DX          
  184. MOV AX,20              
  185. MUL WORD PTR [7C11]    
  186. MOV BX,[7C0B]          
  187. ADD AX,BX              
  188. DEC AX                 
  189. DIV BX                 
  190. ADD [7C49],AX          
  191. ADC WORD PTR [7C4B],0  
  192. MOV BX,500             
  193. MOV DX,[7C52]          
  194. MOV AX,[7C50]          
  195. CALL 560               
  196. JC 4ED                 
  197. MOV AL,1               
  198. CALL 581               
  199. JC 4ED                 
  200. MOV DI,BX              
  201. MOV CX,B               
  202. MOV SI,7DE6            
  203. REPZ                   
  204. CMPSB                  
  205. JNZ 4ED                
  206. LEA DI,[BX+20]         
  207. MOV CX,B               
  208. REPZ                   
  209. CMPSB                  
  210. JZ 505                 
  211. MOV SI,7D9E            
  212. CALL 552               
  213. XOR AX,AX              
  214. INT 16                 
  215. POP SI                 
  216. POP DS                 
  217. POP [SI]               
  218. POP [SI+2]             
  219. INT 19                 
  220. POP AX                 
  221. POP AX                 
  222. POP AX                 
  223. JMP 4ED                
  224. MOV AX,[BX+1A]         
  225. DEC AX                 
  226. DEC AX                 
  227. MOV BL,[7C0D]          
  228. XOR BH,BH              
  229. MUL BX                 
  230. ADD AX,[7C49]          
  231. ADC DX,[7C4B]          
  232. MOV BX,700             
  233. MOV CX,3               
  234. PUSH AX                
  235. PUSH DX                
  236. PUSH CX                
  237. CALL 560               
  238. JC 500                 
  239. MOV AL,1               
  240. CALL 581               
  241. POP CX                 
  242. POP DX                 
  243. POP AX                 
  244. JC 4ED                 
  245. ADD AX,1               
  246. ADC DX,0               
  247. ADD BX,[7C0B]          
  248. LOOP 520               
  249. MOV CH,[7C15]          
  250. MOV DL,[7C24]          
  251. MOV BX,[7C49]          
  252. MOV AX,[7C4B]          
  253. JMP 70:0               
  254. LODSB                  
  255. OR AL,AL               
  256. JZ 580                 
  257. MOV AH,E               
  258. MOV BX,7               
  259. INT 10                 
  260. JMP 552                
  261. CMP DX,[7C18]          
  262. JNC 57F                
  263. DIV WORD PTR [7C18]    
  264. INC DL                 
  265. MOV [7C4F],DL          
  266. XOR DX,DX              
  267. DIV WORD PTR [7C1A]    
  268. MOV [7C25],DL          
  269. MOV [7C4D],AX          
  270. CLC                    
  271. RET                    
  272. STC                    
  273. RET                    
  274. MOV AH,2               
  275. MOV DX,[7C4D]          
  276. MOV CL,6               
  277. SHL DH,CL              
  278. OR DH,[7C4F]           
  279. MOV CX,DX              
  280. XCHG CH,CL             
  281. MOV DL,[7C24]          
  282. MOV DH,[7C25]          
  283. INT 13                 
  284. RET                    
  285.                      
  286. E 59E D A "Non-system disk or disk error"        
  287. E 5BD D A "Replace and press any key when ready" 
  288. E 5E3 D A 0                                      
  289. E 5E6 "IO      SYS" 
  290. E 5F1 "MSDOS   SYS" 
  291. E 5FE 55 AA 
  292. E 600 F8 FF FF FF 
  293. E 3BE 80          
  294. E 3BF 00          
  295. E 3C0 02          
  296. E 3C1 00          
  297. E 3C2 06          
  298. E 3C3 0E          
  299. E 3C4 33          
  300. E 3C5 87          
  301. E 3C6 01 00 00 00 
  302. E 3CA 67 96 01 00 
  303. E 3CE 00          
  304. E 3CF 00          
  305. E 3D0 01          
  306. E 3D1 88          
  307. E 3D2 05          
  308. E 3D3 0E          
  309. E 3D4 B3          
  310. E 3D5 1F          
  311. E 3D6 68 96 01 00 
  312. E 3DA 38 C3 04 00 
  313. E 435 "1" 
  314. rem G=100 138 
  315. F 200 2E0 0 
  316. F 43E 5FD 0 
  317. E 3BE 00          
  318. E 3BF 00          
  319. E 3C0 02          
  320. E 3C1 88          
  321. E 3C2 06          
  322. E 3C3 0E          
  323. E 3C4 73          
  324. E 3C5 0F          
  325. E 3C6 01 00 00 00 
  326. E 3CA 67 96 01 00 
  327. E 3CE 00          
  328. E 3CF 00          
  329. E 3D0 41          
  330. E 3D1 10          
  331. E 3D2 05          
  332. E 3D3 0E          
  333. E 3D4 73          
  334. E 3D5 97          
  335. E 3D6 68 96 01 00 
  336. E 3DA 68 96 01 00 
  337. E 11D 01 88 
  338. E 435 "2" 
  339. rem G=100 138 
  340. E 3BE 00          
  341. E 3BF 00          
  342. E 3C0 42          
  343. E 3C1 10          
  344. E 3C2 06          
  345. E 3C3 0E          
  346. E 3C4 73          
  347. E 3C5 97          
  348. E 3C6 01 00 00 00 
  349. E 3CA 67 96 01 00 
  350. E 3CE 00          
  351. E 3CF 00          
  352. E 3D0 41          
  353. E 3D1 98          
  354. E 3D2 05          
  355. E 3D3 0E          
  356. E 3D4 B3          
  357. E 3D5 1F          
  358. E 3D6 D0 2C 03 00 
  359. E 3DA 68 96 01 00 
  360. E 11D 41 10 
  361. E 435 "3" 
  362. rem G=100 138 
  363. E 3BE 00          
  364. E 3BF 00          
  365. E 3C0 42          
  366. E 3C1 98          
  367. E 3C2 06          
  368. E 3C3 0E          
  369. E 3C4 B3          
  370. E 3C5 1F          
  371. E 3C6 01 00 00 00 
  372. E 3CA 67 96 01 00 
  373. F 3CE 3DD 0 
  374. E 11D 41 98 
  375. E 435 "4" 
  376. rem G=100 
  377.